#pragma once

#include "Renderable.h"

namespace Core
{
	struct Position;
}
using Core::Position;

namespace Graphics
{
	class Viewport;

	class Renderable2D:public Renderable
	{
	private:
		Viewport* m_pViewport;

	public:
		Renderable2D(void);
		virtual ~Renderable2D(void);

		// get position of Renderable2D objects
		virtual const Position& GetPos() = 0;

		// put this object into a viewport
		// make sure this object only in one viewport
		// set to 0 to remove it from current viewport
		virtual void SetViewport(Viewport* viewport);

		// get the Viewport that contained this object
		// return 0 if this object isn't in any Viewport
        inline Viewport* GetViewport(void) {return m_pViewport;}

		virtual void SetSequence(int sequence);
	};
}